A modern data center can include a large number of storage systems, including storage controllers and mass storage devices, and physical servers for hosting applications which access the storage systems. Today's data centers, especially in cloud computing environments, typically have large, multi-tenant systems, i.e., multiple organizations and/or applications share the same underlying processing and storage hardware. The physical servers that host the applications in such environments often include hypervisors, with the individual applications and their operating systems running as virtual machines (VMs) logically on top of the hypervisors.
These data centers are often extremely dynamic in their makeup and usage. For example, the set of applications running on the physical servers in the data center often changes due to the multi-tenant nature of the data center. This dynamism typically results in a fluctuating storage workload for the data center. Further, the storage workload for the data center often changes over time regardless of whether the set of applications changes, e.g., the data center has a peak storage workload during a specific time of day. The difference between an average and peak load can be substantial. Further, in order to balance utilization of processing and storage resources (or for other management reasons), applications may be migrated between physical servers and sometimes between data centers, adding to the dynamic nature of the data center.
Conventional storage management systems are not capable of efficiently handling the dynamic nature of today's data centers. Typically, conventional storage management systems rely on the availability of pre-allocated resources, e.g., processors, memory, flash storage, disk drives, network, etc., often in the form of entire storage systems, to handle the storage needs of an application. If the allocated resources do not meet the storage demand for the data center, typically additional hardware resources are installed to meet the demand. Installing additional hardware resources can be time consuming, labor intensive, and expensive. In some cases, entire storage systems are purchased and installed in the data center to compensate for a peak load that is slightly over the capacity of the previously allocated resources. As a result, conventional storage management techniques result in either an abundance of physical resources that are not efficiently being used (i.e., excess capacity) or, when demand exceeds capacity, cannot react quickly enough to reasonably satisfy the demand.